// 此模块用于注册Foundation中的各个页面及组件
import {App} from 'vue'

//components
import pagingBar from './components/PagingBar.vue'
import tableColOptionsCfg from './components/TableColOptionsCfg.vue'
import searchBarToggleBtn from './components/SearchBarToggleBtn.vue'
import messageBox from './components/MessageBox.vue'
import formFieldGroup from './components/FormFieldGroup.vue'
import simpleFilterSelect from './components/SimpleFilterSelect.vue'
import errorListDisplay from './components/ErrorListDisplay.vue'
import singleInputBox from './components/SingleInputBox.vue'
import batchExecuteDlg from './components/BatchExecuteDlg.vue'
import filterOptionsCfg from './components/FilterOptionsCfg.vue'
import accessory from './components/Accessory.vue'
import idCreateUpdateDisp from './components/IdCreateUpdateDisp.vue'
import shoppingCart from './components/ShoppingCart.vue'
import easyInput from './components/EasyInput.vue'
import timePicker from './components/TimePicker.vue'
//cfg
import about from './pages/cfg/About.vue'
import user from './pages/cfg/User.vue'
import userList from './pages/cfg/UserList.vue'
import fms from './pages/cfg/Fms.vue'
import codeList from './pages/cfg/CodeList.vue'
import code from './pages/cfg/Code.vue'
import roleRightList from './pages/cfg/RoleRightList.vue'
import roleRight from './pages/cfg/RoleRight.vue'

//sys
import error404 from './pages/sys/Error404.vue'
import updateRecord from './pages/sys/UpdateRecord.vue'
import frontendErrorPage from './pages/FrontendErrorPage.vue'
//layout
import mainLayout from './pages/MainLayout.vue'
import centerBoxLayout from './pages/CenterBoxLayout.vue'
//auth
import login from './pages/auth/Login.vue'
import resetPassword from './pages/auth/ResetPassword.vue'
import forgotPassword from './pages/auth/ForgotPassword.vue'
import changePassword from './pages/auth/ChangePassword.vue'
//basic
import mfList from './pages/basic/MfList.vue'
import mf from './pages/basic/Mf.vue'
import exchange from './pages/basic/Exchange.vue'
import exchangeList from './pages/basic/ExchangeList.vue'
import company from './pages/basic/Company.vue'
import companyList from './pages/basic/CompanyList.vue'
//my
import myProfile from './pages/my/MyProfile.vue'

export default {
  install: (app: App) => {
    //component
    app.component(pagingBar.name, pagingBar)
    app.component(tableColOptionsCfg.name, tableColOptionsCfg)
    app.component(searchBarToggleBtn.name, searchBarToggleBtn)
    app.component(messageBox.name, messageBox)
    app.component(formFieldGroup.name, formFieldGroup)
    app.component(simpleFilterSelect.name, simpleFilterSelect)
    app.component(errorListDisplay.name, errorListDisplay)
    app.component(singleInputBox.name, singleInputBox)
    app.component(batchExecuteDlg.name, batchExecuteDlg)
    app.component(filterOptionsCfg.name, filterOptionsCfg)
    app.component(accessory.name, accessory)
    app.component(idCreateUpdateDisp.name, idCreateUpdateDisp)
    app.component(shoppingCart.name, shoppingCart)
    app.component(easyInput.name, easyInput)
    app.component(timePicker.name, timePicker)

    // cfg
    app.component(about.name, about)
    app.component(user.name, user)
    app.component(userList.name, userList)
    app.component(fms.name, fms)
    app.component(codeList.name, codeList)
    app.component(code.name, code)
    app.component(roleRightList.name, roleRightList)
    app.component(roleRight.name, roleRight)

    // sys
    app.component(error404.name, error404)
    app.component(updateRecord.name, updateRecord)
    app.component(frontendErrorPage.name, frontendErrorPage)

    //layout
    app.component(mainLayout.name, mainLayout)
    app.component(centerBoxLayout.name, centerBoxLayout)

    //auth
    app.component(login.name, login)
    app.component(resetPassword.name, resetPassword)
    app.component(forgotPassword.name, forgotPassword)
    app.component(changePassword.name, changePassword)

    // basic
    app.component(mfList.name, mfList)
    app.component(mf.name, mf)
    app.component(exchangeList.name, exchangeList)
    app.component(exchange.name, exchange)
    app.component(companyList.name, companyList)
    app.component(company.name, company)

    //my
    app.component(myProfile.name, myProfile)
  }
}
